/*
 * @Descripttion:
 * @version:
 * @Author: 穆宏宇
 * @Date: 2020-08-24 14:18:18
 * @LastEditors: 穆宏宇
 * @LastEditTime: 2020-11-30 08:49:19
 */
const path = require('path')

// 配置文件
const config = require('./src/config/index.common')

const resolve = dir => {
	return path.join(__dirname, dir)
}

// 项目部署基础
// 默认情况下，我们假设你的应用将被部署在域的根目录下,
// 例如：https://www.my-app.com/
// 默认：'/'
// 如果您的应用程序部署在子路径中，则需要在这指定子路径
// 例如：https://www.foobar.com/my-app/
// 需要将它改为'/my-app/'
const publicPath = process.env.NODE_ENV === 'production'
	? './'
	: config.publicPath

const Timestamp = new Date().getTime();

module.exports = {
	// 项目基础路径
	publicPath,
	// 输出文件夹名称
	// outputDir: config.outputDir||'dist',
	outputDir: 'dist',
	indexPath: process.env.NODE_ENV === 'development' ? 'index.html' : 'index.html',
	assetsDir: 'static',
	// 如果你不需要使用eslint，把lintOnSave设为false即可
	lintOnSave: false,
	chainWebpack: chainConfig => {
		chainConfig.resolve.alias
			.set('@', resolve('src')) // key,value自行定义，比如.set('@@', resolve('src/components'))
			.set('_c', resolve('src/components'))
		// const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
		// types.forEach(type =>
		//   addStyleResource(chainConfig.module.rule('less').oneOf(type))
		// )
		// 文件分析
		// if (process.env.NODE_ENV === 'production') {
		//   chainConfig
		//     .plugin('webpack-bundle-analyzer')
		//     .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
		// }

		// 动态引入主题变量，并注册到全局
		// let theme = './src/styles/theme/' + config.theme + '.scss'
		// const moduleRule = chainConfig.module.rule('scss')
		// const oneOfsMap = moduleRule.oneOfs.store;
		// oneOfsMap.forEach(item => {
		//     item.use('sass-resources-loader')
		//     .loader('sass-resources-loader')
		//     .options({
		//       resources: theme
		//     })
		//     .end()
		// })

	},
	// 打包时生成用于调试的.map文件
	productionSourceMap: false,

	devServer: {
		// 端口号
		port: 8088,
		// 这里写你调用接口的基础路径，来解决跨域，如果设置了代理，那你本地开发环境的axios的baseUrl要写为 '' ，即空字符串
		// proxy: 'https://agshop.delinzl.cn'
		// proxy: 'http://192.168.0.214:6030/', //开发地址
		//  proxy: 'http://192.168.0.205:6030/' //开发地址
		// proxy: 'http://124.70.32.236:32367/'
		// https://agshop.delinzl.cn
		proxy: {
			'/vapi': {
				// target: 'http://192.168.100.64:8099/',
				// target: 'http://172.17.2.192:9001/',
				// target: 'http://59.44.153.111:9005/',
				// target: 'http://192.168.20.33:6007/',
				target: 'https://www.ansteelproperty.com/',
				changeOrigin: true,
				pathRewrite: {
					'^/vapi': '/vapi'
				}
			},
			'/special': {
				// target: 'http://192.168.100.197:6007/',
				// target: 'http://172.17.2.192:9001/',
				// target: 'http://59.44.153.111:9005/',
				target: 'https://www.ansteelproperty.com/',
				// target: 'http://192.168.20.33:6007/',
				changeOrigin: true,
				pathRewrite: {
					'^/special': '/special'
				}
			},
		}
	},
	css: {
		extract: {
			filename: `static/${Timestamp}/css/[name].css`,
			chunkFilename: `static/${Timestamp}/css/[name].css`
		},
		loaderOptions: {
			// 给 sass-loader 传递选项
			sass: {
				prependData: `@import "@/styles/theme/${config.theme}.scss";`
			}
		}
	},
	// webpack.config.js 相关配置 https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
	// configureWebpack: {
	//   module: {
	//     rules: []
	//   },
	//   devtool: 'source-map',
	//   // cacheBusting: false,
	//   plugins: [],
	// }
	configureWebpack: config => {
		config.output.filename = `static/${Timestamp}/js/[name].js`,
			config.output.chunkFilename = `static/${Timestamp}/js/[name].js`,

			config.entry.app = ['babel-polyfill', './src/main.js'],
			config.module.rules.filter(rule => {
				return rule.test.toString().indexOf("scss") !== -1;
			}).forEach(rule => {
				rule.oneOf.forEach(oneOfRule => {
					oneOfRule.use.splice(oneOfRule.use.indexOf(require.resolve('sass-loader')), 0, { loader: require.resolve("css-unicode-loader") })
				})
			})
	}
	// pages: {
	//   index: {
	//    // page 的入口
	//    entry: 'src/main.js',
	//    // 模板来源
	//    template: 'public/index.html',
	//    // 在 dist/index.html 的输出
	//    filename: 'index.html',
	//    // 当使用 title 选项时，
	//    // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
	//    title: 'Index Page',
	//    // 在这个页面中包含的块，默认情况下会包含
	//    // 提取出来的通用 chunk 和 vendor chunk。
	//    chunks: ['chunk-vendors', 'chunk-common', 'index']
	//   },
	//   // 当使用只有入口的字符串格式时，
	//   // 模板会被推导为 `public/subpage.html`
	//   // 并且如果找不到的话，就回退到 `public/index.html`。
	//   // 输出文件名会被推导为 `subpage.html`。
	//   home: 'src/main1.js'
	//  }
}
